<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:ulog="http://www.universal-devices.com/wsdk/isy/3.0/objects/log" elementFormDefault="unqualified" targetNamespace="http://www.universal-devices.com/wsdk/isy/3.0/objects/log" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:annotation>
    <xsd:documentation>
				Copyright 2007-2011 Universal Devices, Inc.
				All Rights Reserved
				
				Defines objects and constructs for log files 
		</xsd:documentation>
  </xsd:annotation>
  <xsd:complexType name="Platform">
    <xsd:annotation>
      <xsd:documentation>
				The supported platform for which this error/message applies
			</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:unsignedInt" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The id for this platform
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Platforms">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="unbounded" name="platform" type="ulog:Platform">
        <xsd:annotation>
          <xsd:documentation>
						A list of supported platforms
						Defined in loginfo.xml
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Actor">
    <xsd:annotation>
      <xsd:documentation>
				The task that was responsible for this error/message
				Defined in loginfo.xml
			</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
						The name for this Actor
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="platforms" type="ulog:Platforms">
        <xsd:annotation>
          <xsd:documentation>
						If this element is not present, then the message/actor applies to 
						all platforms. Otherwise, only to those listed 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:unsignedInt" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The id for this actor
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Actors">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="unbounded" name="actor" type="ulog:Actor">
        <xsd:annotation>
          <xsd:documentation>
						A list of actors
						Defined in loginfo.xml
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LogEntryType">
    <xsd:annotation>
      <xsd:documentation>
				The type of log entry such as start/stop/warning/info/etc.	
				Defined in loginfo.xml
			</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
						The name for this log entry
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="platforms" type="ulog:Platforms">
        <xsd:annotation>
          <xsd:documentation>
						If this element is not present, then the entry applies to 
						all platforms. Otherwise, only to those listed 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:unsignedInt" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The id for this log entry
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="LogEntryTypes">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="unbounded" name="type" type="ulog:LogEntryType">
        <xsd:annotation>
          <xsd:documentation>
						A list of log entry types
						Defined in loginfo.xml
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SubDefinition">
    <xsd:annotation>
      <xsd:documentation>
				Some errors might have sub definitions which are defined
				in other files
			</xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:unsignedInt" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The id for this sub definitions 
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="file" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The file within which the definitions are defined
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="SubDefinitions">
    <xsd:sequence>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="subDefinition" type="ulog:SubDefinition">
        <xsd:annotation>
          <xsd:documentation>
						A list of sub definitions
						Defined in loginfo.xml
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Message">
    <xsd:annotation>
      <xsd:documentation>
				A message which could be error or otherwise
			</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="1" name="name" type="xsd:string">
        <xsd:annotation>
          <xsd:documentation>
						The name for this message
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="platforms" type="ulog:Platforms">
        <xsd:annotation>
          <xsd:documentation>
						If this element is not present, then the message applies to 
						all platforms. Otherwise, only to those listed 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element minOccurs="0" maxOccurs="unbounded" name="subDefinitions" type="ulog:SubDefinition">
        <xsd:annotation>
          <xsd:documentation>
						If this element is not present, then the message is complete 
						in and of itself.
						Otherwise, the associated file must be queried for additional information 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:unsignedInt" use="required">
      <xsd:annotation>
        <xsd:documentation>
					The id for this log entry
				</xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="Messages">
    <xsd:sequence>
      <xsd:element minOccurs="1" maxOccurs="unbounded" name="msg" type="ulog:Message">
        <xsd:annotation>
          <xsd:documentation>
						A list of messages
						Defined in loginfo.xml
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>